streamtest
Streams test library
![Dependency Status](https://dependencyci.com/github/nfroidure/streamtest/badge)
streamtest
is a set of utils to test your stream based modules accross various
stream implementations of NodeJS.
In fact, this repository's tests
is a perfect example of its own usage ;).
Installation
First install streamtest
in your project:
npm install --save-dev streamtest
Getting started
Then, use it:
var StreamTest = require('streamtest');
describe('My Stream Lib', function() {
StreamTest.versions.forEach(function(version) {
describe('for ' + version + ' streams', function() {
it('should work', function(done) {
StreamTest[version].fromChunks(['a ', 'chunk', 'and', 'another'])
.pipe(myTestedStream)
.pipe(StreamTest[version].toText(function(err, text) {
if(err) {
done(err);
}
assert.equal(text, 'the text as i should be');
done();
}));
});
});
});
});
## API
### StreamTest.versions:Array
List of supported versions (currently v1 and v2).
### StreamTest[version]:Object
Object available for each version containing the following methods.
### StreamTest[version].fromChunks(chunks:Array, timeout:Number)
Create a readable stream streaming chunks
each timeout
milliseconds and then
end. Usefull for testing buffer based streams.
### StreamTest[version].fromObjects(objects:Array, timeout:Number)
Create a readable stream streaming objects
each timeout
milliseconds and
then end. Usefull for testing objectMode based streams.
### StreamTest[version].fromErroredChunks(err:Error, chunks:Array, timeout:Number)
Create a readable stream streaming chunks
each timeout
milliseconds, emit
the err
error and then end. Usefull for testing buffer based streams.
### StreamTest[version].fromErroredObjects(err:Error, objects:Array, timeout:Number)
Create a readable stream streaming objects
each timeout
milliseconds, emit
the err
error and then end. Usefull for testing objectMode based streams.
### StreamTest[version].toChunks(cb:Function)
Create a writable stream collecting written chunks
and calling the cb
function when it finishes.
The cb
function take in an error and an Array of chunks.
### StreamTest[version].toObjects(cb:Function)
Create a writable stream collecting written chunks
and calling the cb
function when it finishes.
The cb
function take in an error and an Array of objects.
### StreamTest[version].toText(cb:Function)
Create a writable stream collecting written chunks
and calling the cb
function when it finishes with the whole content converted to text.
The cb
function take in an error and a string.
Contribute
Feel free to submit us your improvements. To do so, you must accept to publish
your code under the MIT license.
To start contributing, first run the following to setup the development
environment:
git clone git@github.com:nfroidure/streamtest.git
cd streamtest
npm install
Then, run the tests:
npm test
Stats
![NPM](https://nodei.co/npm-dl/streamtest.png)
License
MIT